"""
宿舍电费公平分摊
这个月的宿舍电费花了100元，宿舍有6个人，大家要凑够100元来缴纳这个电费。
为了公平起见，按照每个人的用电器功率和每天用电时间计算比率。
设计一个程序，让大家输入自己的用电器功率（有1到多个电器）以及对应的平均每天使用时间，结束一个人输入后打印该同学的用电总功率，
最后按比率计算每个人应出多少钱。

提示：
1. 你可以使用一个循环来收集每个室友的用电信息。每次循环中，再使用一个子循环来收集该室友的所有用电器的功率和使用时间，当捕获到非用电信息时（即非数字）结束循环。
2. 用电总功耗可以通过功率乘以使用时间得到。所有室友的用电总功耗之和就是宿舍的总功耗。
3. 每个室友应缴纳的电费 = (该室友的总功耗 / 宿舍的总功耗) * 100元。

"""


def collect_electricity_info():
    students = []
    while True:
        student_info = []
        print("\n请输入室友的用电信息（输入非数字结束当前室友信息） ：")
        while True:
            try:
                power = float(input("请输入用电器功率："))
                usage_time = float(input("请输入平均每天使用时间："))
                student_info.append((power,usage_time))
            except ValueError:
                break
        if not student_info:
            break
        students.append(student_info)
    return students
def calculate_total_consumption(students):
    total_consumption = 0
    for student in students:
        student_consumption = sum(power * usage_time for power,usage_time in student)
        print(f"该同学的用电总功率:{student_consumption:.2f}wh")
        total_consumption += students,total_consumption
    return total_consumption
def calculate_individual_cost(students,total_consumption,total_cost):
    costs = []
    for student in students:
        student_consumption = sum(power * usage_time for power,usage_time in student)
        cost = (student_consumption / total_consumption) * total_cost
        costs.append(cost)
    return costs
def main():
    total_cost = 100  #宿舍总电费
    students = collect_electricity_info()
    total_consumption = calculate_total_consumption(students)
    costs = calculate_individual_cost(students,total_consumption,total_cost)
    for i,cost in enumerate(costs):
        print(f"室友{i+1}应缴纳的电费:{cost:.2f}元")
if __name__ == "__main__":
    main()
